#ifndef SERIALWORKER_H
#define SERIALWORKER_H

#include <QObject>
#include <QSerialPort>
#include <QTimer>

class SerialWorker : public QObject {
  Q_OBJECT

public:
  explicit SerialWorker(QObject *parent = nullptr);
  ~SerialWorker();

public slots:
  void startReading(); // 开始读取RFID
  void stopReading();  // 停止读取RFID

signals:
  void rfidCardDetected(QString cardNumber); // RFID卡检测信号
  void errorOccurred(QString error);         // 错误发生信号
  void statusMessage(QString message);       // 状态信息信号

private slots:
  void requestProtocol(); // 发送请求协议
  void read_rfid();       // 读取RFID数据

private:
  QSerialPort *serial;     // 串口对象
  QTimer *readTimer;       // 读取定时器
  QByteArray serialBuffer; // 串口数据缓冲区、
  QString num;             // 卡号
};

#endif // SERIALWORKER_H
